package Demo;

public class Demo03 {
    public static void main(String[] args) {
        /**
         * 面向对象 ：将功能封装到类中，以类和对象为最小单位，注重让谁完成，耦合度低，后期维护方便。
         *
         * 三大特征：封装   继承   多态 ；有了封装，才有继承，有了继承，才有多态。
         */

        /**
         * 面向过程：强调功能的实现，以方法作为最小的单位，注重实现功能的过程。
         * 缺点：耦合度高，扩展性差
         * 优点：对于小型项目来说，面向过程的方式 效率要高，不用建立模型，直接开始开发。
         */

        //new对象
        Student stu = new Student();

        //调用构造方法及变量用 引用.的方式
        stu.name = "Iven";
        stu.sex = "男";
        stu.height = 1.71;
        stu.weight = 65;

        System.out.println(stu);//输出的是堆内存中的地址。
        System.out.print(stu.name);
        stu.call();
        System.out.print(stu.name);
        System.out.println(stu.sex);


        //一个类可以new N个对象  每个对象之间是独立的没有练习

        Student stu1 = new Student();
        System.out.println(stu1.name); //因为没赋值 所以输出结果是默认值 null
        System.out.println(stu1.sex);//null
        System.out.println(stu1.height);//0.0

        // stu中存储的是new在堆中的16进制地址  所以stu2和stu指的是一个对象 修改stu2 stu也跟着修改
        Student stu2 = stu;

        stu2.name = "Tom";
        System.out.println(stu.name); //Tom


    }
}
